package py.com.alfa.escriba.gui.dto.admin;

import java.util.Date;

import org.codehaus.jackson.annotate.JsonIgnoreProperties;

import py.com.alfa.escriba.gui.utils.ObjectUtils;

@JsonIgnoreProperties(ignoreUnknown = true)
public class PersonaDTO {
	
	private Long id;
	private String nombresRazon;
	private String apellidos;
	private Long tipoPersona;
	private Date fechaNacimientoCreacion;
	private Long sexo;
	private Long estadoCivil;
	private Integer nupcia;
	private Long pais;
	private String profesionActividad;
	private String email;
	private boolean escribano;
	private Integer registroNro;
	private boolean activo;
	private Long trn;
	private String nombreCompleto;
	private PersonasjuridicasinfoDTO personaJuridica;
	
	//belong specifically to the application
	private boolean cliente;
	
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getNombresRazon() {
		return nombresRazon;
	}
	public void setNombresRazon(String nombresRazon) {
		this.nombresRazon = ObjectUtils.parseString(nombresRazon);
	}
	public String getApellidos() {
		return apellidos;
	}
	public void setApellidos(String apellidos) {
		this.apellidos = ObjectUtils.parseString(apellidos);
	}
	public Long getTipoPersona() {
		return tipoPersona;
	}
	public void setTipoPersona(Long tipoPersona) {
		this.tipoPersona = tipoPersona;
	}
	public Date getFechaNacimientoCreacion() {
		return fechaNacimientoCreacion;
	}
	public void setFechaNacimientoCreacion(Date fechaNacimientoCreacion) {
		this.fechaNacimientoCreacion = fechaNacimientoCreacion;
	}
	public Long getSexo() {
		return sexo;
	}
	public void setSexo(Long sexo) {
		this.sexo = sexo;
	}
	public Long getEstadoCivil() {
		return estadoCivil;
	}
	public void setEstadoCivil(Long estadoCivil) {
		this.estadoCivil = estadoCivil;
	}
	public Integer getNupcia() {
		return nupcia;
	}
	public void setNupcia(Integer nupcia) {
		this.nupcia = nupcia;
	}
	public Long getPais() {
		return pais;
	}
	public void setPais(Long pais) {
		this.pais = pais;
	}
	public String getProfesionActividad() {
		return profesionActividad;
	}
	public void setProfesionActividad(String profesionActividad) {
		this.profesionActividad = profesionActividad;
	}
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = ObjectUtils.parseString(email);
	}
	public boolean isEscribano() {
		return escribano;
	}
	public void setEscribano(boolean escribano) {
		this.escribano = escribano;
	}
	public Integer getRegistroNro() {
		return registroNro;
	}
	public void setRegistroNro(Integer registroNro) {
		this.registroNro = registroNro;
	}
	public boolean isActivo() {
		return activo;
	}
	public void setActivo(boolean activo) {
		this.activo = activo;
	}
	public Long getTrn() {
		return trn;
	}
	public void setTrn(Long trn) {
		this.trn = trn;
	}
	public boolean isCliente() {
		return cliente;
	}
	public void setCliente(boolean cliente) {
		this.cliente = cliente;
	}
	public PersonasjuridicasinfoDTO getPersonaJuridica() {
		return personaJuridica;
	}
	public void setPersonaJuridica(PersonasjuridicasinfoDTO personaJuridica) {
		this.personaJuridica = personaJuridica;
	}
	public String getNombreCompleto() {
		return nombreCompleto;
	}
	public void setNombreCompleto(String nombreCompleto) {
		this.nombreCompleto = nombreCompleto;
	}
	@Override
	public String toString() {
		StringBuilder builder = new StringBuilder();
		builder.append("PersonaDTO [id=").append(id).append(", nombresRazon=")
				.append(nombresRazon).append(", apellidos=").append(apellidos)
				.append(", tipoPersona=").append(tipoPersona)
				.append(", fechaNacimientoCreacion=")
				.append(fechaNacimientoCreacion).append(", sexo=").append(sexo)
				.append(", estadoCivil=").append(estadoCivil)
				.append(", nupcia=").append(nupcia).append(", pais=")
				.append(pais).append(", profesionActividad=")
				.append(profesionActividad).append(", email=").append(email)
				.append(", escribano=").append(escribano)
				.append(", registroNro=").append(registroNro)
				.append(", activo=").append(activo).append(", trn=")
				.append(trn).append(", nombreCompleto=").append(nombreCompleto)
				.append(", personaJuridica=").append(personaJuridica)
				.append(", cliente=").append(cliente).append("]");
		return builder.toString();
	}
	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((id == null) ? 0 : id.hashCode());
		return result;
	}
	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (!(obj instanceof PersonaDTO))
			return false;
		PersonaDTO other = (PersonaDTO) obj;
		if (id == null) {
			if (other.id != null)
				return false;
		} else if (!id.equals(other.id))
			return false;
		return true;
	}

}
